package applications.callcost;

import java.util.TimerTask;

import android.content.ContentResolver;
import android.content.Context;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.Uri;


public class SmsReceiver extends TimerTask{
	
	final String PREFS_NAME = "prefs";
	Context context;
	SharedPreferences settings;
	SharedPreferences.Editor editor;
	
	public SmsReceiver(Context c){
		context=c;
		settings = context.getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);
		editor   = settings.edit();
	}

	@Override
	public void run() {
		
		sms();
		mms();
		
	}
	
	private void mms(){
		/*
		 * RIGA 0 COLONNA 0======NUMERO MESSAGGI TOTALI INVIATI
		 */

		Uri allMessage = Uri.parse("content://mms/");
		ContentResolver cr = context.getContentResolver();
		Cursor c = cr.query(allMessage, null, null, null, null);
		c.moveToFirst();

		int prevMess=settings.getInt("prev_messMMS", 0);  //prendo il numero di messaggi precedenti
		int currMess=Integer.parseInt(c.getString(0)); //prendo il nuovo numero di messaggi maggiore o uguale a quello di prima
		float credit=settings.getFloat(CallCostMain.CREDIT_LEFT, 0); //credito rimanente
		int mmsCost=settings.getInt(CallCostMain.MMS_COST, 0); //costo messaggi
		
		credit-=((float)mmsCost*(currMess-prevMess))/100; //aggiorno il credito rimanente
		
		
		editor.putFloat(CallCostMain.CREDIT_LEFT, credit);
		editor.putInt("prev_messMMS", currMess);
		editor.commit();
		
		//Log.e("Numero Messaggi", c.getString(0));
	}
	
	private void sms(){
		
		Uri allMessage = Uri.parse("content://sms/");
		ContentResolver cr = context.getContentResolver();
		Cursor c = cr.query(allMessage, null, null, null, null);
		c.moveToFirst();

		int prevMess=settings.getInt("prev_mess", 0);  //prendo il numero di messaggi precedenti
		int currMess=Integer.parseInt(c.getString(0)); //prendo il nuovo numero di messaggi maggiore o uguale a quello di prima
		float credit=settings.getFloat(CallCostMain.CREDIT_LEFT, 0); //credito rimanente
		int smsCost=settings.getInt(CallCostMain.SMS_COST, 0); //costo messaggi
		
		credit-=((float)smsCost*(currMess-prevMess))/100; //aggiorno il credito rimanente
		
		
		editor.putFloat(CallCostMain.CREDIT_LEFT, credit);
		editor.putInt("prev_mess", currMess);
		editor.commit();
	}

}
